package com.sciencep.pro.core.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sciencep.pro.common.domain.QueryRequest;
import com.sciencep.pro.common.domain.ResponseResult;
import com.sciencep.pro.common.exception.CustomException;
import com.sciencep.pro.core.domain.dto.user.UserDetail;
import com.sciencep.pro.core.domain.dto.workdailylog.*;
import com.sciencep.pro.core.domain.entity.UserWorkdailyLog;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sciencep.pro.core.domain.vo.workdailylog.WorkDailyLogVo;

import java.text.ParseException;
import java.util.List;

/**
 * @author Sciencep
 */
public interface IUserWorkdailyLogService extends IService<UserWorkdailyLog> {


    List<WorkDailyListResponseTO> getLogList(String userId,String date) throws CustomException;

    List<WorkLogDetailTO> getMyLog(String userId,String beginMonth,String endMonth);

    List<UserWorkdailyLog> getDetail(String userId,String date ,String proNo);

    Page<WorkdailyLogTO> getWorkDailyReviewList(QueryRequest queryRequest, WorkDailyLogVo workDailyLogVo);

    Page<WorkdailyLogTO> getWorkDailyReviewListBack(QueryRequest queryRequest, WorkDailyLogVo workDailyLogVo);

    List<WorkdailyLogTO> getWorkDailyReviewListExport(WorkDailyLogVo workDailyLogVo);

    List<WorkdailyLogTO> exportWorkDailyReviewDetail(WorkDailyLogVo workDailyLogVo);

    Page<WorkLogDetailTO> getWorkLogDetailTOPage(QueryRequest queryRequest, WorkDailyLogRequestTO requestTO);

    Page<WorkLogDetailTO> getWorkLogDetailTOPageNew(QueryRequest queryRequest, WorkDailyLogRequestTO requestTO);

    void reviewWorkDailyLog(ReviewTO reviewTO , UserDetail userDetail) throws CustomException;

    void reviewWorkDailyLogBatch(List<String> idList , UserDetail userDetail);

    int selectCount(UserWorkdailyLog userWorkdailyLog);

    int isReview(UserWorkdailyLog userWorkdailyLog);

    ResponseResult<UserWorkdailyLog> importWorkDailyReviewDetail(List<WorkdailyLogTO> list, UserDetail detail) throws ParseException;
}
